001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Nov 28, 2002 005 * Time: 3:12:09 AM 006 */ 007 008 package EVolve.util.painters; 009 010 import EVolve.visualization.AutoImage; 011 012 import java.awt.*; 013 import java.util.Stack; 014 015 public class StackHotspotPainter extends Painter{ 016 private Stack currentStack; 017 018 public String getName() { 019 return "Stack Hotspot Painter"; 020 } 021 022 public void paint(AutoImage image, long x, long y, long z) { 023 024 if (z == Integer.MAX_VALUE) {// method return; 025 image.setColor((int)x,(int)y,Color.black); 026 if (!currentStack.empty()) { 027 currentStack.pop(); 028 if (!currentStack.empty()) { 029 image.setColor((int)x,((Long)currentStack.peek()).intValue(),Color.red ); 030 } 031 } 032 } else { 033 for (int i=0; i<currentStack.size(); i++) { 034 image.setColor((int)x,((Long)currentStack.get(i)).intValue(),Color.blue); 035 } 036 image.setColor((int)x,(int)y,Color.red); 037 currentStack.push(new Long(y)); 038 } 039 } 040 041 public void setStack(Stack stack) { 042 currentStack = stack; 043 } 044 045 public Object clone() { 046 StackHotspotPainter o = (StackHotspotPainter)super.clone(); 047 o.currentStack = (Stack)currentStack.clone(); 048 return o; 049 } 050 }